Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

399
Vistas
¿Por qué mi docx generado en javascript de un blob está lleno de [Objeto Objeto]?

Estoy enviando datos a mi backend de Django a través de una solicitud POST, el servidor luego crea un docx usando estos datos y me lo envía de regreso donde estoy tratando de descargarlo usando el siguiente código:

 axios.post(route, data).then((res) => { const filename = "report.docx" var blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); var link = document.createElement('a'); var URL = window.URL || window.webkitURL; var downloadUrl = URL.createObjectURL(blob); link.href = downloadUrl; link.style = "display: none"; link.download = filename; document.body.appendChild(link) link.click() link.remove() });

La descarga del archivo funciona, pero cuando lo abro, solo contiene [Objeto Objeto], ¿qué estoy haciendo mal aquí? Revisé el backend y el documento se creó correctamente, ya que tiene el contenido correcto cuando lo guardo cuando se genera en el servidor, por lo que lo estoy enviando mal o creando mal el archivo en el frontend.

Así es como lo envío desde el backend:

 #Generating the doc properly before this... response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document') report_filename = 'graph-report-'+now.strftime('%Y-%m-%d_%H-%M-%S')+'.docx' response['Content-Disposition'] = 'attachment; filename=%s'%(report_filename) document.save(response) return response

Gracias por ayudarme.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Con Axios, el res en axios.post(route, data).then((res) => es un objeto de respuesta.

Los datos devueltos se encuentran en res.data .

  1. Haga console.log(res.data) para ver que realmente son los datos binarios que espera.
  2. new Blob([res.data], ... para usar esos datos para obtener el blob. (Si ya es un blob cortesía de Axios, no es necesario que se moleste).

(Aparte, realmente no necesita usar fetch() y createObjectURL para esto, ya que está formando una respuesta binaria similar a una descarga; sería suficiente que el navegador PUBLIQUE los datos deseados, por ejemplo, como un formulario al punto final; descargaría la respuesta de la misma manera).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda